#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
搜狐号自动保存草稿 - 使用示例
演示如何使用动态变量替换标题、摘要、正文
"""

from sohu_draft_publisher import SohuDraftPublisher
import json
import os
from datetime import datetime

def load_article_templates():
    """加载文章模板"""
    templates = {
        'astrology': {
            'title_template': '{date}运势预测！{constellation}财运爆表，{fortune_type}不断！',
            'brief_template': '{constellation}的朋友们注意了！{date}开始，{blessing}，财神眷顾，{wealth_desc}！',
            'content_template': '''
<p>{constellation}的朋友们，{greeting}！</p>
<p>{date}开始，你们将迎来一段非常幸运的时光。根据星象分析：</p>
<h3>财运方面：</h3>
<p>{wealth_content}</p>
<h3>事业运势：</h3>
<p>{career_content}</p>
<h3>感情运势：</h3>
<p>{love_content}</p>
<p>总的来说，{constellation}在{period}期间，{summary}。记住，{advice}！</p>
<p>祝愿所有{constellation}的朋友们{blessing}！</p>
'''
        },
        'morning': {
            'title_template': '{date}早安心语：{theme}，{mood_desc}',
            'brief_template': '美好的一天从{greeting}开始，{inspiration}，愿你{wishes}！',
            'content_template': '''
<p>{greeting}，亲爱的朋友们！</p>
<p>{date}，{weather_desc}，正是{activity}的好时光。</p>
<p>{inspiration_content}</p>
<p>{quote}</p>
<p>{encouragement}</p>
<p>愿你今天{daily_wishes}，{closing}！</p>
'''
        }
    }
    return templates

def generate_astrology_articles():
    """生成星座运势文章"""
    templates = load_article_templates()
    astrology_template = templates['astrology']
    
    # 星座数据
    constellations = [
        {'name': '白羊座', 'period': '3月21日-4月19日'},
        {'name': '金牛座', 'period': '4月20日-5月20日'},
        {'name': '双子座', 'period': '5月21日-6月21日'},
        {'name': '巨蟹座', 'period': '6月22日-7月22日'}
    ]
    
    # 动态内容数据
    fortune_data = {
        'fortune_types': ['横财', '正财', '偏财', '意外之财'],
        'blessings': ['福星高照', '好运连连', '财运亨通', '贵人相助'],
        'wealth_descriptions': ['财源滚滚', '钱包鼓鼓', '财富猛增', '金玉满堂'],
        'greetings': ['大家好', '朋友们好', '亲爱的朋友们'],
        'periods': ['未来一周', '本月下旬', '接下来10天', '近期']
    }
    
    articles = []
    current_date = datetime.now().strftime('%m月%d日')
    
    for i, constellation in enumerate(constellations):
        # 动态选择内容
        fortune_type = fortune_data['fortune_types'][i % len(fortune_data['fortune_types'])]
        blessing = fortune_data['blessings'][i % len(fortune_data['blessings'])]
        wealth_desc = fortune_data['wealth_descriptions'][i % len(fortune_data['wealth_descriptions'])]
        greeting = fortune_data['greetings'][i % len(fortune_data['greetings'])]
        period = fortune_data['periods'][i % len(fortune_data['periods'])]
        
        # 替换模板变量
        title = astrology_template['title_template'].format(
            date=current_date,
            constellation=constellation['name'],
            fortune_type=fortune_type
        )
        
        brief = astrology_template['brief_template'].format(
            constellation=constellation['name'],
            date=current_date,
            blessing=blessing,
            wealth_desc=wealth_desc
        )
        
        content = astrology_template['content_template'].format(
            constellation=constellation['name'],
            greeting=greeting,
            date=current_date,
            wealth_content=f"财神眷顾，{fortune_type}不断，投资理财都有不错的收益。",
            career_content=f"工作顺利，{period}内可能有升职加薪的机会。",
            love_content="感情和谐，单身者有望遇到心仪对象。",
            period=period,
            summary=f"{blessing}，{wealth_desc}",
            advice="保持积极心态，抓住机遇",
            blessing=f"{blessing}，{wealth_desc}"
        )
        
        articles.append({
            'title': title,
            'brief': brief,
            'content': content
        })
    
    return articles

def generate_morning_articles():
    """生成早安文章"""
    templates = load_article_templates()
    morning_template = templates['morning']
    
    # 早安内容数据
    morning_data = {
        'themes': ['温暖阳光', '美好心情', '正能量满满', '幸福时光'],
        'moods': ['心情愉悦', '精神饱满', '充满活力', '神清气爽'],
        'greetings': ['早安', '早上好', '美好的清晨'],
        'inspirations': ['每一天都是新的开始', '阳光总在风雨后', '相信自己，你是最棒的'],
        'wishes': ['开心快乐', '工作顺利', '身体健康', '万事如意']
    }
    
    articles = []
    current_date = datetime.now().strftime('%Y年%m月%d日')
    
    for i in range(3):  # 生成3篇早安文章
        theme = morning_data['themes'][i % len(morning_data['themes'])]
        mood_desc = morning_data['moods'][i % len(morning_data['moods'])]
        greeting = morning_data['greetings'][i % len(morning_data['greetings'])]
        inspiration = morning_data['inspirations'][i % len(morning_data['inspirations'])]
        wishes = morning_data['wishes'][i % len(morning_data['wishes'])]
        
        title = morning_template['title_template'].format(
            date=current_date,
            theme=theme,
            mood_desc=mood_desc
        )
        
        brief = morning_template['brief_template'].format(
            greeting=greeting,
            inspiration=inspiration,
            wishes=wishes
        )
        
        content = morning_template['content_template'].format(
            greeting=greeting,
            date=current_date,
            weather_desc="阳光明媚",
            activity="出门走走",
            inspiration_content=f"今天让我们{inspiration}，用最美好的心情迎接新的一天。",
            quote="\"生活不是等待暴风雨过去，而是学会在雨中跳舞。\"",
            encouragement="无论昨天发生了什么，今天都是一个全新的开始。",
            daily_wishes=wishes,
            closing="早安"
        )
        
        articles.append({
            'title': title,
            'brief': brief,
            'content': content
        })
    
    return articles

def main():
    """主函数"""
    try:
        # 检查配置文件是否存在
        if not os.path.exists('sohu_config.json'):
            print("错误：配置文件 sohu_config.json 不存在！")
            print("请先配置好 sohu_config.json 文件中的 cookie 等信息。")
            return
        
        # 创建发布器实例
        publisher = SohuDraftPublisher()
        
        print("=== 搜狐号自动保存草稿程序 ===")
        print("1. 生成星座运势文章")
        print("2. 生成早安文章")
        print("3. 自定义文章")
        print("4. 退出")
        
        choice = input("请选择操作 (1-4): ").strip()
        
        if choice == '1':
            print("\n正在生成星座运势文章...")
            articles = generate_astrology_articles()
            
        elif choice == '2':
            print("\n正在生成早安文章...")
            articles = generate_morning_articles()
            
        elif choice == '3':
            print("\n请输入自定义文章信息：")
            title = input("标题: ").strip()
            brief = input("摘要: ").strip()
            content = input("正文 (支持HTML): ").strip()
            
            if not content.startswith('<'):
                content = f"<p>{content}</p>"
            
            articles = [{
                'title': title,
                'brief': brief,
                'content': content
            }]
            
        elif choice == '4':
            print("程序退出。")
            return
            
        else:
            print("无效选择！")
            return
        
        # 显示生成的文章
        print(f"\n生成了 {len(articles)} 篇文章：")
        for i, article in enumerate(articles, 1):
            print(f"\n--- 文章 {i} ---")
            print(f"标题: {article['title']}")
            print(f"摘要: {article['brief'][:50]}...")
        
        # 确认是否保存
        confirm = input("\n是否保存这些草稿到搜狐号？(y/n): ").strip().lower()
        
        if confirm == 'y':
            print("\n开始保存草稿...")
            results = publisher.batch_save_drafts(articles, delay=3)
            
            # 显示结果
            print("\n=== 保存结果 ===")
            success_count = 0
            for result in results:
                status = "成功" if result['result']['success'] else "失败"
                print(f"文章 {result['index']}: {status} - {result['title']}")
                if result['result']['success']:
                    success_count += 1
                else:
                    print(f"  错误信息: {result['result']['message']}")
            
            print(f"\n总计: {success_count}/{len(articles)} 篇文章保存成功")
        else:
            print("取消保存操作。")
    
    except Exception as e:
        print(f"程序执行错误: {e}")

if __name__ == '__main__':
    main()